package com.situ.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.situ.domain.dto.OrderPageQueryDTO;
import com.situ.domain.dto.SaveOrderDTO;
import com.situ.domain.entity.TOrder;
import com.situ.domain.vo.*;

import java.util.List;

public interface OrderService extends IService<TOrder> {
    /**
     * 保存订单
     * @param saveOrderDTO
     */
    String saveOrder(SaveOrderDTO saveOrderDTO);

    /**
     * 获取订单列表
     * @param pageQueryDTO
     * @return
     */
    BasePageQueryVO<TOrder> getOrderList(OrderPageQueryDTO pageQueryDTO);

    /**
     * 根据订单查询用户
     * @param oid
     * @return
     */
    UserInfoVO getUserByOrder(String oid);

    /**
     * 根据id删除订单
     * @param oid
     */
    void deleteOrdrById(String oid);

    /**
     * 查询订单统计信息
     * @return
     */
    OrderReportVO getOrderReport();

    /**
     * 查询运营数据统计报表
     * @return
     */
    BussinessReportVO.OrderReport getBussinessOrderReport();

    /**
     * 支付成功
     * @param uid
     * @param oid
     */
    void payedOrder(Integer uid, String oid);

    /**
     * 根据用户id和订单状态查询订单列表
     * @param state
     * @return
     */
    List<OrderAndItemVO> getOrderListByUserState(Integer state);
}
